package com.cucheng.chatroom.service;

import com.alibaba.fastjson.JSONObject;

import io.netty.channel.ChannelHandlerContext;

public interface ChatService {

    /**
     *@Description: TODO(用户登录后注册到全局变量，为在线用户) 
     *@Author: wangchengjie
     *@Since: 2019年3月29日下午4:22:50
     *@param param
     *@param ctx
     */
    public void register(JSONObject param,ChannelHandlerContext ctx);

    /**
     *@Description: TODO(发送个人消息) 
     *@Author: wangchengjie
     *@Since: 2019年3月29日下午4:23:27
     *@param param
     *@param ctx
     */
    public void singleSend(JSONObject param,ChannelHandlerContext ctx);

    /**
     *@Description: TODO(发送群组消息) 
     *@Author: wangchengjie
     *@Since: 2019年3月29日下午4:23:40
     *@param param
     *@param ctx
     */
    public void groupSend(JSONObject param,ChannelHandlerContext ctx);

    /**
     *@Description: TODO(单人发送图片，或者文件) 
     *@Author: wangchengjie
     *@Since: 2019年3月29日下午4:25:35
     *@param param
     *@param ctx
     */
    public void FileMsgSingleSend(JSONObject param,ChannelHandlerContext ctx);

    /**
     *@Description: TODO(群组发送图片或者文件) 
     *@Author: wangchengjie
     *@Since: 2019年3月29日下午4:26:06
     *@param param
     *@param ctx
     */
    public void FileMsgGroupSend(JSONObject param,ChannelHandlerContext ctx);

    /**
     *@Description: TODO(用户退出或者掉线移除，全局变量改为离线状态) 
     *@Author: wangchengjie
     *@Since: 2019年3月29日下午4:24:31
     *@param ctx
     */
    public void remove(ChannelHandlerContext ctx);

    /**
     *@Description: TODO(消息类型不存在) 
     *@Author: wangchengjie
     *@Since: 2019年3月30日下午3:39:02
     *@param ctx
     */
    public void typeError(ChannelHandlerContext ctx);

}
